<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 逻辑运算符

// 与、或、非

// 与  -  `&&`
  // 写法： 布尔值表达式1 && 布尔值表达式2 && 布尔值表达式3 ....
  // 规则：只要有一个为「假」，即返回这个「假」，后续的 代码均不被执行
      // 当所有都为「真」，返回最后的「真」

  /* 案例：判断 小明 是否是 成年+男性？ true是 / false否
    var mingName = '小明',
      mingAge = 8,
      mingSex = 'male'; // 'female'

    console.log((mingAge >= 18) && (mingSex == 'male'))
  */


// 或  -  `||`
  // 写法： 布尔值表达式1 || 布尔值表达式2 || 布尔值表达式3 ....
  // 规则：只要有一个表达式为「真」，即返回这个「真」，后续的代码不会执行
      // 当所有都为「假」，返回最后的「假」

    /* 案例：判断 小明、小红、小张 中是否有成年人？
      var mingAge = 13,
        hongAge = 24,
        zhangAge = 15;
      console.log((mingAge >= 18) || (hongAge >= 18) || (zhangAge >= 18));
    */

    // ** 案例：'' || 0 || 'xxxx' || NaN 返回值为 'xxxx'

// 非  - `!`
  // 写法：  !布尔值表达式
  // 规则：将「真」变为 false，将「假」变为 true。


// 总结：什么是「假」，即 Boolean(变量) 能转为 false 的数据类型，都为「假」
  // ''、0、NaN、undefined、null


</script>